﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CurriculasEntities;
using CurriculasController;

namespace GestionCurriculos
{
    public partial class frmSilabo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Session["opcion"] = 5;
            if (!Page.IsPostBack)
            {

                //CARGAR GRILLA
                CargarGrilla();
            }
        }

        private void CargarGrilla()
        {
            List<ListaSilaboBE> _lstSilabos = new ListaBL().ListarSilabos(txtCurso.Text).ToList();
            gvSilabos.DataSource = _lstSilabos;
            gvSilabos.DataBind();
        }

        protected void btnCrear_Click(object sender, EventArgs e)
        {
            Response.Redirect("frmRegSilabo.aspx");
        }

        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            CargarGrilla();
        }

        protected void btnModificar_Click(object sender, EventArgs e)
        {
            int contador = 0;
            string codSilabo = "";
            string strScript = "";
            foreach (GridViewRow row in gvSilabos.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    CheckBox chkRow = (row.Cells[0].FindControl("chkSilabo") as CheckBox);
                    if (chkRow.Checked)
                    {
                        codSilabo = row.Cells[1].Text;
                        contador += 1;

                    }
                }
            }

            if (contador == 0)
            {
                strScript = "alert('No se ha seleccionado un curso a modificar.')";
            }
            else if (contador == 1)
            {   
               Response.Redirect("frmRegSilabo.aspx?idSilabo=" + codSilabo);
            }
            else if (contador > 1)
            {
                strScript = "alert('Solo se puede modificar un Silabo.')";
            }


            Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", strScript, true);

        }

        protected void btnEliminarTrue_Click(object sender, EventArgs e)
        {

            int codSilabo = int.Parse(hidCodSilabo.Value);
            string strScript = "";
            if (codSilabo != 0)
            {
                SilaboBL objSilaboBL = new SilaboBL();
                SilaboBE objSilaboBE = new SilaboBE();

                objSilaboBE = objSilaboBL.Obtener(codSilabo);
                objSilaboBE.estado = "2";

                objSilaboBE = objSilaboBL.Modificar(objSilaboBE);
                CargarGrilla();

                strScript = "alert('Se eliminó el sílabo con código: " + codSilabo + "');";
            }

            Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction2", strScript, true);

        }
        protected void btnEliminar_Click(object sender, EventArgs e)
        {
            int contador = 0;
            int codSilabo = 0;
            string strScript = "";
            foreach (GridViewRow row in gvSilabos.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    CheckBox chkRow = (row.Cells[0].FindControl("chkSilabo") as CheckBox);
                    if (chkRow.Checked)
                    {
                        codSilabo = int.Parse(row.Cells[1].Text);
                        //string country = (row.Cells[2].FindControl("lblCurso") as Label).Text;
                        contador += 1;
                    }
                }
            }

            if (contador > 1)
            {
                strScript = "alert('Solo se puede eliminar un silabo.')";

            } if (contador == 1)
            {

                if (codSilabo != 0)
                {

                    //List<ListaEstadoCursoBE> _lstEstado = new ListaBL().ListarEstadoCurso(codCurso).ToList();

                    //if (_lstEstado.Count > 0)
                    //{

                    //    //Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction2", "alert('El curso no se puede eliminar, debido a que esta asociado a un Plan Curricular.')", true);
                    //    strScript = "alert('El curso no se puede eliminar, debido a que esta asociado a un Plan Curricular.')";
                    //}
                    //else
                    //{
                        //Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "ConfirmDelete('" + codCurso + "')", true);
                        strScript = "ConfirmDelete('" + codSilabo  + "')";

                    //}

                }
            }
            else if (contador == 0)
            {

                strScript = "alert('Seleccionar un Silabo para eliminar.')";
            }

            Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", strScript, true);
        }
    }
}